/*
 * ! Ext JS Library 3.3.0 Copyright(c) 2006-2010 Ext JS, Inc.
 * licensing@extjs.com http://www.extjs.com/license
 */

//
// This is the main layout definition.
//
var username;
function setUsername(name){
	username=name;
}
function getUsername(){
	return username;
}

var currentFormId;
var currentTaskId;
var contentPanel;
Ext.ux.TabCloseMenu = function() {
	var tabs, menu, ctxItem;
	this.init = function(tp) {
		tabs = tp;
		tabs.on('contextmenu', onContextMenu);
	};

	function onContextMenu(ts, item, e) {
		if (!menu) { // create context menu on first right click
			menu = new Ext.menu.Menu([ {
				id : tabs.id + '-close',
				text : '关闭页面',
				iconCls : 'btnno',
				handler : function() {
					if(tabs.items.items.length==1){
						ctxItem.hide();
					}
//						tabs.hideTabStripItem(ctxItem);
//						ctxItem.hide();
					tabs.remove(ctxItem);
				}
			}, {
				id : tabs.id + '-close-others',
				text : '关闭其他页面',
				iconCls : 'btnno',
				handler : function() {
					tabs.items.each(function(item) {
						if (item != ctxItem) {							
//							tabs.hideTabStripItem(item);
//							item.hide();
							tabs.remove(item);
						}
					});
				}
			}, {
				id : tabs.id + '-close-all',
				text : '关闭所有页面',
				iconCls : 'btnno',
				handler : function() {
					tabs.items.each(function(item) {
					{
						
//							tabs.hideTabStripItem(item);
//							item.hide();
						
						if(tabs.items.items.length==1){
							item.hide();
						}
						tabs.remove(item);
					}
					});
				}
			} ]);
		}
		ctxItem = item;
		menu.showAt(e.getPoint());
	}
};

Ext.chart.Chart.CHART_URL = 'images/charts.swf';
Ext.onReady(function() {
	Ext.QuickTips.init();//支持tips提示
	Ext.form.Field.prototype.msgTarget='side';//提示的方式，枚举值
			contentPanel = new Ext.TabPanel({
				id : 'content-panel',
				region : 'center', // this is what makes this panel into a region
				// within the containing layout
				margins : '2 5 5 0',
				activeItem : 0,
				border : false,
				items : [ start ],// ,
				plugins : new Ext.ux.TabCloseMenu(),
				autoDestroy : false,
				layoutOnTabChange :true,
				addTab:function(id){
					var page=Ext.getCmp(id);
					if(page!=null){
						this.items.each(function(item){
							if(item.id==id){
								item.doLayout();
								contentPanel.setActiveTab(item);
								return;
							}
						});
						
						contentPanel.add(page).show();		
						page.doLayout();
						contentPanel.setActiveTab(page);
					}
				},
				listeners:{
					'beforeremove':function(tabPanel, panel) {   
						if(tabPanel.items.items.length<=1){
							contentPanel.setActiveTab(null);
							return;
						}
						var active=tabPanel.getActiveTab();
						if(active.id==panel.id){
							for(var i=0;i<tabPanel.items.items.length;i++){	
								var cp=tabPanel.items.items[i];
								if(cp.id==panel.id){
									var p;
									if(i>0){									
										p=tabPanel.items.items[i-1];							
										
									}else{										
										p=tabPanel.items.items[1];
									}
									contentPanel.setActiveTab(p);
									break;
								}							
							}							
						}
					}
//					'remove':function(tabPanel, panel){
//						alert(1);
//					}
				}
			});

			// alert(getQueryString('type'));
			// Assign the changeLayout function to be called on tree node click.
			treePanel.on('click', function(n) {
				var sn = this.selModel.selNode || {}; // selNode is null on
				// initial
				// selection
//				if (n.leaf && n.id != sn.id) { // ignore clicks on folders and
//					// currently selected node
//					// Ext.getCmp('content-panel').layout.setActiveItem(n.parentNode.id
//					// + '-panel');
//					Ext.getCmp('content-panel').layout.setActiveItem(n.id
//							+ '-panel');
//					contentInit(n.parentNode.id, n.id, n.text);
//
//				}
				if (n.parentNode.id != 'modelgroup'){
					if (n.parentNode.parentNode != null && n.parentNode.parentNode.id == 'modelgroup'){
					//alert(n.parentNode.id);
					//alert(n.id);
					Ext.getCmp('content-panel').layout.setActiveItem('viewgroup-panel');
					contentInit2(n.parentNode.parentNode.id, n.parentNode.id,n.parentNode.text, n.id, n.text);
				}
					else{
					if (n.id != sn.id) { // not ignore clicks on folders and
						// currently selected node
						// Ext.getCmp('content-panel').layout.setActiveItem(n.parentNode.id
						// + '-panel');
						//alert(n.id);
						//alert(n.parentNode.id);
						Ext.getCmp('content-panel').layout.setActiveItem(n.id
								+ '-panel');
						contentInit(n.parentNode.id, n.id, n.text);

					}
					}
				
				}
				else if(n.parentNode.id == 'modelgroup'){
					//alert(n.text);
					Ext.getCmp('content-panel').layout.setActiveItem('versiongroup-panel');
					contentInit(n.parentNode.id, n.id, n.text);
				}
				
//				if (n.parentNode.parentNode != null && n.parentNode.parentNode.id == 'modelgroup'){
//					alert(n.parentNode.parentNode.id);
//					Ext.getCmp('content-panel').layout.setActiveItem('viewgroup-panel');
//					contentInit2(n.parentNode.parentNode.id, n.parentNode.id, n.id, n.text);
//				}

				
//				if (n.leaf==false && sn.id == "modelgroup") { // ignore clicks on folders and
//					// currently selected node
//					// Ext.getCmp('content-panel').layout.setActiveItem(n.parentNode.id
//					// + '-panel');
//					//alert(n.parentNode.id);
//					alert(sn.id);
//					alert(sn.text);
//					Ext.getCmp('content-panel').layout.setActiveItem(sn.id
//							+ '-panel');
//					var pid;
//					contentInit(pid,sn.id, sn.text);
//
//				}
//				else if (n.leaf == true && n.id != sn.id) { // ignore clicks on folders and
//					// currently selected node
//					// Ext.getCmp('content-panel').layout.setActiveItem(n.parentNode.id
//					// + '-panel');
//					alert(n.parentNode.id);
//					alert(n.id);
//					Ext.getCmp('content-panel').layout.setActiveItem(n.id
//							+ '-panel');
//					contentInit(n.parentNode.id,n.id, n.text);
//
//				}
			});
			// Ext.getCmp('domainModelXml').addListener('menu',menufunctino);
			var nodeName;
            var pnodeName;
			treePanel.on('contextmenu', function(node, e) {
				if(node.parentNode != null){
				e.preventDefault;
				node.select();
				treeMenu.showAt(e.getXY());
				}
			});
			
			treeMenu = new Ext.menu.Menu({
				id : 'treeMenu',
				items : [ new Ext.menu.Item({
					text : '刷新',
					icon : 'add',
					handler : refresh
				}), '-', new Ext.menu.Item({  
				       id : 'delNode',  
				       text : '删除',  
				       handler : delNodeAction
				      }),{  
				       id : 'modifNode',  
				       text : '修改',  
				       handler : modifNodeAction
				      }
				]
			});
		
			var treeEditor = new Ext.tree.TreeEditor(treePanel, {  
				  id : 'tree-Manage',  
				  allowBlank : false  
				  });  
		
		
		
		
			function ExportHandler() {
				// Ext.MessageBox.alert(nodeName);
				// Ext.MessageBox.wait('正在处理',nodeName,'等待....'); //this
				// function is useful
				Ext.Ajax.request({
					method : 'POST',// 后台路径
					url : 'exportOripsAction',// 向后台传递参数
					params : {
						nodeName : nodeName,
						pnodeName: pnodeName
					},
					success : function(request) {
						
						
						Ext.MessageBox.alert('传输成功');
					}

				});
			}
		
		

			function refresh() {
				var sn =treePanel.selModel.selNode || {};
				var pn=sn.parentNode;
				if(sn != null)pn.reload();
				pn.expand();
				treeMenu.hidden;
			}
	
			function delNodeAction() {
				var sn =treePanel.selModel.selNode || {};
				sn.remove();
				treeMenu.hidden;
			}

			function modifNodeAction() {
				var sn =treePanel.selModel.selNode || {};
				  treeEditor.editNode = sn;  
				  treeEditor.startEdit(sn.ui.textNode);  
			}
			// This is the Details panel that contains the description for each
			// example
			// layout.

			// Finally, build the main layout once all the pieces are ready.
			// This is
			// also a good
			// example of putting together a full-screen BorderLayout within a
			// Viewport.
			new Ext.Viewport({
				layout : 'border',
				title : 'WareHouse4WS',
				items : [ {
					xtype : 'box',
					region : 'north',
					applyTo : 'header',
					height : 30
				}, {
					region : 'west', // 左边布局
					title : '导航栏',
					collapsible : true,
					split : true,
					width : 250,
					minSize : 175,
					maxSize : 400,
					layout : 'fit',
					margins : '0 0 0 0',
					items : new Ext.TabPanel({
						border : false,
						activeTab : 0,
						tabPosition : 'bottom',
						items : [ treePanel

						]
					})
				}, contentPanel ],
				renderTo : Ext.getBody()
			});
			// style change
			Ext.get('styleswitcher_select').on('change', function(e, select) {
				var name = select[select.selectedIndex].value;
				setActiveStyleSheet(name);
			});
			var cookie = readCookie("style");
			var title = cookie ? cookie : getPreferredStyleSheet();
			Ext.get('styleswitcher_select').dom.value = title;
			
		});

// contentPanel填充方法选择
function contentInit(pid, cid, text) {
//	var page = Ext.getCmp(cid + '-panel');
//	if (page != null) {
//		contentPanel.addTab(cid + '-panel');
//		page.showPage();
//	}

	if (pid != 'modelgroup') {
		if (cid.length>=30) {
			
			contentPanel.addTab('xml-panel');
			showXmlContent(cid);
		}
		else if (cid == 'functiongroup'){
			Ext.getCmp('content-panel').addTab('functiongroup-panel');
				showFunctiongroup(cid);
		}	
		else if (cid == 'organizationgroup'){
			Ext.getCmp('content-panel').addTab('organizationgroup-panel');
				showOrganizationgroup(cid);
		}
		else {
			var page = Ext.getCmp(cid+'-panel');
			if (page != null) {
				//alert(cid);
				contentPanel.addTab(cid + '-panel');
				page.showPage();
			}
		}	
	}
	else if(pid == 'modelgroup') {
			contentPanel.addTab('versiongroup-panel');
			showVersiongroup(text);
	}
}

function contentInit2(ppid, pid,ptext, cid, text) {
//	var page = Ext.getCmp(cid + '-panel');
//	if (page != null) {
//		contentPanel.addTab(cid + '-panel');
//		page.showPage();
//	}
//	if (pid != 'modelgroup') {
//		if (cid.length>=30) {
//			
//			contentPanel.addTab('xml-panel');
//			showXmlContent(cid);
//		}else{
//			var page = Ext.getCmp(cid+'-panel');
//			if (page != null) {
//				//alert(cid);
//				contentPanel.addTab(cid + '-panel');
//				page.showPage();
//			}
//		}	
//	}
	if(ppid == 'modelgroup') {
			contentPanel.addTab('viewgroup-panel');
			showViewgroup(pid,text);
	}
}

// ////////////////////////////////////////////////